1. Technical Field
The present invention relates to storing data in a content-addressable storage system, and more specifically, to interposing a storage layer between an application and a content-addressable storage system for reducing the latency associated with writing data to the content-addressable storage system.
2. Description of the Related Art
Content-addressable storage (CAS) systems are more complex with respect to writing data than traditional storage systems. Before acknowledging a synchronous write operation, a CAS system calculates a hashkey based on the content of the block, performs a check to determine whether or not a block with identical contents (to the one currently being written) has already been written to the CAS system (e.g., by looking up values in a hash table), and writes the block if it determines that the block is unique. The acknowledgment also returns a content address, which is equal to or derived from the hashkey. The content address is used during read operations to retrieve the block.
The calculation of the hashkey, as well as the check to determine whether or not a block with identical contents was previously stored, contribute significantly to the latency associated with writing data to a CAS system.